Computer systems are developed to execute analytical processes to assist, as much as possible, in determining outcomes or actions to be taken based on state data associated with a particular situation. To enable the processes to be executed optimally based on data available in relation to a knowledge domain, computer science has needed to develop technical language structures that can be interpreted and processed by computer, i.e. a logic machine. Accordingly, computer science uses ontologies to provide a strict or formal representation of concepts in a knowledge domain and relationships between those concepts to enable them to be interpreted, processed and operated on by a computer.
Concepts from an ontology may be combined to form an expression which follows a set of rules from a formal description logic. These expressions are part of an ontology language. An example of an ontology language is the Web Ontology Language (OWL). An example of an ontology is the Systematized Nomenclature of Medicine—Clinical Terms (SNOMED CT).
Ontologies define concepts and relationships, and ontology languages express a combination of those concepts and relationships. The semantic content of an expression in an ontology language may be understood with reference to the ontology. For example, the semantic content of the expression “fracture of left femur” in an ontology language may be formally expressed as representing the following structured concepts and relationships:
“fracture of left femur” ≡ disease : {  associated morphology = fracture,  finding site = (   bone structure of femur :    laterality = left   ) }
The ontology assists in interpreting the expression “fracture of the left femur” by making explicit the implicit relationships within the expression. For example, it is implicit in the expression that the nature of the injury is a fracture (i.e. it is the associated morphology). Similarly, it is implicit that “femur” is used to denote a location of the injury (i.e. the finding site), and “left” is used to denote the laterality of the location on the femur. The concepts of “fracture”, “femur” and “left” are defined in the ontology.
Another example is the expression “gastrointestinal haemorrhage by trauma”. This may be formally expressed by reference to an ontology as follows:
“gastrointestinal haemorrhage by trauma” ≡ disease : {  associated morphology = haemorrhage,   finding site = gastrointestinal tract structure }, due to = traumatic injury
Another way of formally expressing “gastrointestinal haemorrhage by trauma” is as follows:                “gastrointestinal haemorrhage by trauma”≡                    gastrointestinal haemorrhage:                            due to=traumatic injury                                                
It can be seen from the above that the formal expression of basic ontology expressions involves making explicit the implicit relationships between the concepts identified within the basic expressions.
When extending or modifying an ontology, it is often useful to be able to ensure that a basic form of an expression matches a formal, explicit (or “canonical” form) of the expression, so that subsequent machine interpretation of the basic form does not rely on inaccurate implicit relationships in the basic form. Existing editing tools for establishing, editing and refining ontologies are primarily text based tools which allow direct editing of the basic form without any strict control or machine analysis of the syntax or the expression. Also, whilst an inferred or canonical form of the expression may be presented, it is purely a separate informational display.
It is desired to address the shortcomings of the prior art, or at least provide a useful alternative.